<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Number</title>
</head>
<body>
        <!-- 数字 Number -->
    <script>
    // Number 的表示方法
        // 十进制
        var iNum = 511;
        document.write('iNum = ' + iNum + '<br/>');
        // 八进制
        var oNum = 070;
        document.write('oNum = ' + oNum + '<br/>');
        // 十六进制
        var xNum = 0xff;
        document.write('xNum = ' + xNum + '<br/>');
        // 二进制
        var bNum = 0b111;
        document.write('bNum = ' + bNum + '<br/>');
        // 浮点数
        var fNum = 5.01;
        document.write('fNum = ' + fNum + '<br/>');
        // NaN
        var iNum = NaN;
        document.write('iNum = ' + iNum + '<br/>');
        document.write('================================<br/>');

    // Number 的常用方法
        // // 浮点数，科学计数法
        // var fNum = 5.61e7; // 5.61 * 10^7
        // document.write('fNum = ' + fNum + '<br/>');

        // 1, parseFLoat(n); effect: 将给定值解析为浮点数; sample code:
        var res = parseFloat('1.66$mn');
        document.write('parseFloat("1.66%mn") = ' + res + '<br/>');
        // 2, parseInt(n); effect: 将给定的值解析成整数; sample code:
        var res = parseInt('1.6668bb');
        document.write('parseInt("1.6668bb") = ' + res + '<br/>');
        // 3, Number(n); effect: 将给定的对象转换成数字--对应js隐式转换; sample code:
        var trueNumber = new Boolean(true);
        document.write('trueNumber = ' + Number(trueNumber) + '<br/>');
        var falseNumber = new Boolean(false);
        document.write('falseNumber = ' + Number(falseNumber) + '<br/>');
        var dateNumber = new Date(); //  时间
        document.write('dateNumber = ' + Number(dateNumber) + '<br/>');
        var stringNumber = new String('999');
        document.write('stringNumber = ' + Number(stringNumber) + '<br/>');
        var stirngBlankNumber = new String('999 888');
        document.write('stringBlankNumber = ' + Number(stirngBlankNumber) + '<br/>');
        // 总结：
            // 三者都不能处理前置非number字符，能处理前后置的空格。
            // parseInt() parseFLoat()遇到空格都不再继续解析，Number()遇到中间空格('3.45 6')报错
            // parseInt() parseFLoat()可以处理后置非number字符, Number()只能处理数字字符串。

        // 4, Number.MAX_VALUE; effect：表示在 JavaScript 里所能表示的最大数值; sample code:
        var iNum = Number.MAX_VALUE;
        document.write('Number.MAX_VALUE = ' + iNum + '<br/>');
        // 5, Number.MIN_VALUE; effect: 表示在 JavaScript 中所能表示的最小的正值; sample code:
        var iNum = Number.MIN_VALUE;
        document.write('Number.MIN_VALUE = ' + iNum + '<br/>');
        // 6, Number.isFinite(n);
        var iNum = Number.POSITIVE_INFINITY;
        document.write('Number.POSITIVE_INFINITY = ' + iNum + '<br/>');
        // 7, Number.isInteger(n); effect: 用来检测传入的参数是否是一个有穷数,return Boolean; sample code:
        var infinityNumber = Infinity;
        document.write('Number.isFinite(infinityNumber) = ' + Number.isFinite(infinityNumber) + '<br/>');
        // 8, Number.isSafeInteger(n); effect: 用来判断传入的参数是否是一个安全整数，return Boolean;
        // 安全整数：范围为 -(2的53次方 - 1)到 2的53次方 - 1 之间; sample code:
        document.write('Number.isSafeInteger(3) = ' + Number.isSafeInteger(3) + '<br/>');
        document.write('Number.isSafeInteger(9.8) = ' + Number.isSafeInteger(9.8) + '<br/>');
        // 9, Number.isNaN(n); effect: 用来判断传入的参数值是否是Nan; sample code:
        document.write('Number.isNaN(2) = ' + Number.isNaN(2) + '<br/>');
        // 10, n.tofixed(key); key default = 0; effect: 使用定点表示法来格式化一个数(必要时会做四舍五入); sample code:
        document.write('2.3.toFixed(3) = ' + 2.3.toFixed(3) + '<br/>');
        document.write('2.3.toFixed() = ' + 2.3.toFixed() + '<br/>');
        // 11, n.toString();
        document.write('123.456.toString() = ' + 123.456.toString() + '<br/>');
    </script>
</body>
</html>